# -*- coding: utf-8 -*-
"""
日志文件读取模块
负责读取monkey测试生成的.log文件
"""

import os
from typing import List, Optional


class LogReader:
    """日志文件读取器"""
    
    def __init__(self):
        """初始化日志读取器"""
        pass
    
    def read_log_file(self, file_path: str) -> Optional[List[str]]:
        """
        读取日志文件内容
        
        Args:
            file_path (str): 日志文件路径
            
        Returns:
            Optional[List[str]]: 日志文件的行列表，如果读取失败返回None
        """
        if not os.path.exists(file_path):
            print(f"错误：文件 {file_path} 不存在")
            return None
            
        if not file_path.lower().endswith('.log'):
            print(f"警告：文件 {file_path} 不是.log文件")
            
        try:
            with open(file_path, 'r', encoding='utf-8', errors='ignore') as file:
                lines = file.readlines()
                return lines
        except Exception as e:
            print(f"读取文件时发生错误：{e}")
            return None
    
    def validate_log_file(self, file_path: str) -> bool:
        """
        验证日志文件是否有效
        
        Args:
            file_path (str): 日志文件路径
            
        Returns:
            bool: 文件是否有效
        """
        if not os.path.exists(file_path):
            return False
            
        if not os.path.isfile(file_path):
            return False
            
        # 检查文件大小
        if os.path.getsize(file_path) == 0:
            print("警告：日志文件为空")
            return False
            
        return True